/**
 * 从顺序表中删除具有最小值得元素(唯一)，并由函数返回被删元素的值，空出的位置由最后一个元素填补，
 * 若顺序表为空，则显示出错信息并退出
 * 
 * */

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 50		// 线性表的最大长度
#define ElemType int    // 元素存储类型
#define bool int
#define true !0
#define false 0

typedef struct {
	ElemType data[MAX_SIZE];
	int length;			// 顺序表当前长度
} SqList;

int DeleteMinElem(SqList& L)
{
	//判断顺序表是否为空
	if(L.length == 0) {
		printf("顺序表为空!\n");
		return -1;
	}

	int min_elem=L.data[0];
	int min_elem_index=0;
	for(int i=1; l < L.length; i++) {
		if(L.data[i] < min_elem) {
			min_elem=L.data[i];	//找到更小的元素，更新min_elem及其索引min_elem_index
			min_elem_index=i;
		}
	}
	//将最后一个元素的值代替空位
	L.data[min_elem_index] = L.data[L.length-1];
	//更新当前顺序表长度
	L.length--;
	return min_elem;
}